﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using Library.UI.Grid;
using QuanLyDiem.models;
using QuanLyDiem.Controllers;
using Library.UI.Form;
namespace QuanLyDiem.DanhMuc
{
    public partial class frmLop : DevExpress.XtraEditors.XtraForm
    {
        public frmLop()
        {
            InitializeComponent();
        }
        public int abc { get; set; }
        private void frmLop_Load(object sender, EventArgs e)
        {
            txtNienKhoa1.SetMask("[2-9][0-9]{3}");
            txtNienKhoa2.SetMask("[2-9][0-9]{3}");
            Context db = new Context();
            gridView1.Config(true, false, false, false, true, false, true, false, false);
            gridView1.Config2(DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect, false, true);
            C_He.LoadDataSource(lueHe, db);
            C_He.LoadDataSource(rleHe, db);
            C_Khoa.LoadDataSource(lueKhoa, db);
            C_Khoa.LoadDataSource(rleKhoa, db);
            C_ChuyenNganh.LoadDataSource(lueChuyenNganh, db);
            C_ChuyenNganh.LoadDataSource(rleChuyenNganh, db);
            C_Lop.LoadViewBindingSource(lopBindingSource);
            gridView1.BestFitAllColumns();

        }

        private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            var lop = gridView1.GetFocusedRow() as Lop;
            if (lop == null) return;
            txtTenLop.Text = lop.Ten_lop;
            lueHe.EditValue = lop.ID_he;
            txtKhoaHoc.Text = lop.Khoa_hoc.ToString();
            txtSoSinhVien.Text = lop.So_sv.ToString();
            lueKhoa.EditValue = lop.ID_khoa;
            lueChuyenNganh.EditValue = lop.ID_chuyen_nganh;
            txtNienKhoa1.Text = lop.Nien_khoa.Substring(0, 4);
            txtNienKhoa2.Text = lop.Nien_khoa.Substring(5, 4);

        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            btnThem.Enabled = btnSua.Enabled = btnXoa.Enabled = false;
            txtKhoaHoc.Enabled = txtNienKhoa1.Enabled = txtNienKhoa2.Enabled = txtSoSinhVien.Enabled = txtTenLop.Enabled = lueChuyenNganh.Enabled=lueHe.Enabled=lueKhoa.Enabled = true;
            txtKhoaHoc.Text = txtNienKhoa1.Text = txtNienKhoa2.Text = txtSoSinhVien.Text = txtTenLop.Text = "";
            btnThucHien.Enabled = btnhuy.Enabled = true;
      //      txtTenLop.Focus();
            abc = 1;
        }

        private void btnThucHien_Click(object sender, EventArgs e)
        {
            Context db = new Context();
            if (txtKhoaHoc.Text == "" && txtNienKhoa1.Text == "" && txtNienKhoa2.Text == "" && txtSoSinhVien.Text == "" && txtTenLop.Text == "" || txtKhoaHoc.Text == "" || txtNienKhoa1.Text == "" || txtNienKhoa2.Text == "" || txtSoSinhVien.Text == "" || txtTenLop.Text == "")
            {
                MessageBox.Show("Bạn phải nhập đủ dữ liệu");
            }
            else
            {
                if (abc == 1)
                {
                    var rs = MessageBox.Show("Bạn có muốn thêm dữ liệu không", "Chú ý", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                    if (rs == System.Windows.Forms.DialogResult.Yes)
                    {
                        try
                        {

                            var lop = new Lop()
                            {
                                Ten_lop = txtTenLop.Text,
                                ID_he = (int)lueHe.EditValue,
                                ID_khoa = (int)lueKhoa.EditValue,
                                ID_chuyen_nganh = (int)lueChuyenNganh.EditValue,
                                Khoa_hoc = int.Parse(txtKhoaHoc.Text),
                                So_sv = int.Parse(txtSoSinhVien.Text),
                                Nien_khoa = txtNienKhoa1.Text + "-" + txtNienKhoa2.Text
                            };
                            db.Lops.InsertOnSubmit(lop);
                            db.SubmitChanges();
                            lopBindingSource.DataSource = db.Lops;
                            gridView1.BestFitAllColumns();
                            btnThem.Enabled = btnSua.Enabled = btnXoa.Enabled = false;
                            btnhuy.Enabled = btnThucHien.Enabled = false;
                            txtKhoaHoc.Enabled = txtNienKhoa1.Enabled = txtNienKhoa2.Enabled = txtSoSinhVien.Enabled = txtTenLop.Enabled = lueChuyenNganh.Enabled = lueHe.Enabled = lueKhoa.Enabled = true;
                            MessageBox.Show("Thêm dữ liệu thành công", "Thông báo");

                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Lỗi");
                        }
                    }
                }
                else if (abc == 2)
                {
                    var rs = MessageBox.Show("Bạn có muốn sửa dữ liệu không", "Chú ý", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                    if (rs == System.Windows.Forms.DialogResult.Yes)
                    {
                        try
                        {

                            var lop = gridView1.GetFocusedRow() as Lop;
                            lop.Ten_lop = txtTenLop.Text;
                            lop.ID_he = (int)lueHe.EditValue;
                            lop.ID_khoa = (int)lueKhoa.EditValue;
                            lop.ID_chuyen_nganh = (int)lueChuyenNganh.EditValue;
                            lop.Khoa_hoc = int.Parse(txtKhoaHoc.Text);
                            lop.So_sv = int.Parse(txtSoSinhVien.Text);
                            lop.Nien_khoa = txtNienKhoa1.Text + "-" + txtNienKhoa2.Text;
                            var update = db.Lops.SingleOrDefault(a => a.ID_lop == lop.ID_lop);
                            update.Ten_lop = lop.Ten_lop;
                            update.ID_he = lop.ID_he;
                            update.ID_khoa = lop.ID_khoa;
                            update.ID_chuyen_nganh = lop.ID_chuyen_nganh;
                            update.Khoa_hoc = lop.Khoa_hoc;
                            update.So_sv = lop.So_sv;
                            update.Nien_khoa = lop.Nien_khoa;
                            db.SubmitChanges();
                            lopBindingSource.DataSource = db.Lops;
                            gridView1.BestFitAllColumns();
                            btnThem.Enabled = btnSua.Enabled = btnXoa.Enabled = true;
                            btnhuy.Enabled = btnThucHien.Enabled = false;
                            txtKhoaHoc.Enabled = txtNienKhoa1.Enabled = txtNienKhoa2.Enabled = txtSoSinhVien.Enabled = txtTenLop.Enabled = lueChuyenNganh.Enabled = lueHe.Enabled = lueKhoa.Enabled = true;
                            MessageBox.Show("Sửa dữ liệu thành công", "Thông báo");
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Lỗi");
                        }
                    }
                }
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            btnThem.Enabled = btnSua.Enabled = btnXoa.Enabled = false;
            txtKhoaHoc.Enabled = txtNienKhoa1.Enabled = txtNienKhoa2.Enabled = txtSoSinhVien.Enabled = txtTenLop.Enabled = lueChuyenNganh.Enabled = lueHe.Enabled = lueKhoa.Enabled = true;
            abc = 2;
            btnThucHien.Enabled = btnhuy.Enabled = true;
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (gridView1.FocusedRowHandle < 0) return;
            var rs = MessageBox.Show("Bạn có muốn xóa dữ liệu không", "Chú ý", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
            if (rs == System.Windows.Forms.DialogResult.Yes)
            {
                try
                {
                    Context db = new Context();
                    var lop = gridView1.GetFocusedRow() as Lop;
                    var delete = db.Lops.SingleOrDefault(a => a.ID_lop == lop.ID_lop);
                    db.Lops.DeleteOnSubmit(delete);
                    db.SubmitChanges();
                    lopBindingSource.DataSource = db.Lops;
                    gridView1.BestFitAllColumns();
                    MessageBox.Show("Xóa dữ liệu thành công", "Thông báo");
                }
                catch (Exception)
                {
                    MessageBox.Show("Lỗi");
                }
            }
        }

        private void txtTenLop_Validating(object sender, CancelEventArgs e)
        {
            //if (string.IsNullOrEmpty(txtTenLop.Text))
            //{
            //    MessageBox.Show("Chưa nhập dữ liệu tên lớp");
            //    txtTenLop.SetFocus();
            //}

        }

        private void txtKhoaHoc_Validating(object sender, CancelEventArgs e)
        {
            //if (string.IsNullOrEmpty(txtKhoaHoc.Text))
            //{
            //    MessageBox.Show("Chưa nhập dữ liệu khóa học");
            //    txtKhoaHoc.SetFocus();
            //}

        }

        private void txtNienKhoa1_Validating(object sender, CancelEventArgs e)
        {
            //if (string.IsNullOrEmpty(txtNienKhoa1.Text))
            //{
            //    MessageBox.Show("Chưa nhập dữ liệu niên khóa");
            //    txtNienKhoa1.SetFocus();
            //}
        }

        private void txtNienKhoa2_Validating(object sender, CancelEventArgs e)
        {
            //if (string.IsNullOrEmpty(txtNienKhoa2.Text))
            //{
            //    MessageBox.Show("Chưa nhập dữ liệu niên khóa");
            //    txtNienKhoa2.SetFocus();
            //}
        }

        private void txtSoSinhVien_Validating(object sender, CancelEventArgs e)
        {
            //if (string.IsNullOrEmpty(txtSoSinhVien.Text))
            //{
            //    MessageBox.Show("Chưa nhập dữ liệu số sinh viên");
            //    txtSoSinhVien.SetFocus();
            //}

        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnhuy_Click(object sender, EventArgs e)
        {
            var lop = gridView1.GetFocusedRow() as Lop;
            if (lop == null) return;
            txtTenLop.Text = lop.Ten_lop;
            lueHe.EditValue = lop.ID_he;
            txtKhoaHoc.Text = lop.Khoa_hoc.ToString();
            txtSoSinhVien.Text = lop.So_sv.ToString();
            lueKhoa.EditValue = lop.ID_khoa;
            lueChuyenNganh.EditValue = lop.ID_chuyen_nganh;
            txtNienKhoa1.Text = lop.Nien_khoa.Substring(0, 4);
            txtNienKhoa2.Text = lop.Nien_khoa.Substring(5, 4);
            btnThem.Enabled = btnSua.Enabled = btnXoa.Enabled = true;
            btnThucHien.Enabled = btnhuy.Enabled = false;
            txtKhoaHoc.Enabled = txtNienKhoa1.Enabled = txtNienKhoa2.Enabled = txtSoSinhVien.Enabled = txtTenLop.Enabled = lueChuyenNganh.Enabled = lueHe.Enabled = lueKhoa.Enabled = false;
        }
    }
}